package ar.uba.fi.algo3.modelo.disparo;

import java.util.ArrayList;

import ar.uba.fi.algo3.auxiliares.Posicion;
import ar.uba.fi.algo3.modelo.CampoBatalla;
import ar.uba.fi.algo3.modelo.nave.ComponenteNave;
import ar.uba.fi.algo3.modelo.nave.Nave;

public class DisparoConvencional extends Disparo {    
	
    private boolean acerto;
	private String nombre;

	public DisparoConvencional(Posicion otraPosicion, CampoBatalla campoBatalla){
    	
    	super(otraPosicion, campoBatalla);
        this.darCosto(200);      
        this.posicion=otraPosicion;
        this.acerto= false;
        this.nombre= "disparo.jpg";
    }
     
	public boolean coincideCon(Posicion unaPosicion) {
		
        this.acerto= false;
       
        if(unaPosicion.esIgualA((posicion))){           
        	
        	this.acerto=true;
        	return acerto;    
        }  
        return acerto;
   }

	@Override
	public void tocaA(Nave nave) {
		
		this.destruirDisparo();
	}

	@Override
	public void efectua(Nave nave) {
		
		ArrayList<ComponenteNave> componentesNave= nave.obtenerComponentes();
		
		for(ComponenteNave unaComponente : componentesNave){
	        
			if(this.coincideCon(unaComponente.getPosicion())){
				
				this.disparar(unaComponente);
				nave.tocaA(nave);
			} 		
		}		
	}

	public Disparo crearDisparo(Posicion posicion, CampoBatalla campoBatalla) {
		
		return new DisparoConvencional (posicion, campoBatalla);
	}

	@Override
	public boolean terminoSuTurno() {
		
		return true;
	}

	@Override
	public boolean acerto() {
		// TODO Auto-generated method stub
		return acerto;
	}
	
	@Override
	public void vivir() {}

	@Override
	public void tocaA(Disparo disparo) {}
	
	@Override
	public void efectua(Disparo disparo) {}

	@Override
	public String getNombre() {
		// TODO Auto-generated method stub
		return nombre;
	}
}
     